namespace Sirius.Mapper.Internals
{
    using System;

    internal class Manager<T, TKey> : IManager<T, TKey>
    {
        private readonly ISession session;
        private readonly ITypeMapping<T> typeMapping;

        public Manager(ISession session, ITypeMapping<T> typeMapping)
        {
            this.session = session;
            this.typeMapping = typeMapping;
        }

        public void Insert(T entity)
        {
            var query = typeMapping.BuildInsertQuery(session.Provider, entity);
            session.ExecuteQuery(query);
        }

        public void Update(T entity)
        {
            throw new NotImplementedException();
        }

        public T Get(TKey entityId)
        {
            throw new NotImplementedException();
        }

        public void Delete(T entity)
        {
            throw new NotImplementedException();
        }

        public void Delete(TKey entity)
        {
            throw new NotImplementedException();
        }
    }
}